package com.demo.zhlg;

import com.mybatisflex.codegen.Generator;
import com.mybatisflex.codegen.config.GlobalConfig;
import com.mybatisflex.codegen.dialect.IDialect;
import com.zaxxer.hikari.HikariDataSource;
// 我是战犯
public class Codegen {

    public static void main(String[] args) {
        //配置数据源
        HikariDataSource dataSource = new HikariDataSource();
        dataSource.setJdbcUrl("jdbc:sqlite:zhlg.db");
        dataSource.setUsername("");
        dataSource.setPassword("");

        // 生成配置
        GlobalConfig globalConfig = createGlobalConfig();
        //通过 datasource 和 globalConfig 创建代码生成器
        //注意第三个参数，设置为SQlite方言
        Generator generator = new Generator(
                dataSource, globalConfig, IDialect.SQLITE );
        //生成代码
        generator.generate();
    }

    public static GlobalConfig createGlobalConfig() {
        //创建配置内容
        GlobalConfig globalConfig = new GlobalConfig();
        //设置根包
        globalConfig.getPackageConfig()
                .setBasePackage("com.demo.zhlg");
        //设置表前缀和只生成哪些表，setGenerateTable 未配置时，生成所有表
//        globalConfig.getStrategyConfig()
//                .setGenerateTable("user", "favor", "book", "category", "cart", "indent", "indent_detail");
        //设置生成 entity 并启用 Lombok
        globalConfig.enableEntity()
                .setWithLombok(true);
        //设置生成 mapper，service和实现类，以及controller
        globalConfig.enableMapper();
        globalConfig.enableService();
        globalConfig.enableServiceImpl();
        globalConfig.enableController();

        return globalConfig;
    }
}